package com.geek.water.utils;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/**
 * 密码编码工具类
 *
 * @author system
 * @date 2025-08-13
 */
public class PasswordEncoderUtil {

    private static final BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();

    /**
     * 编码密码
     * @param rawPassword 原始密码
     * @return 编码后的密码
     */
    public static String encode(String rawPassword) {
        return encoder.encode(rawPassword);
    }

    /**
     * 验证密码
     * @param rawPassword 原始密码
     * @param encodedPassword 编码后的密码
     * @return 是否匹配
     */
    public static boolean matches(String rawPassword, String encodedPassword) {
        return encoder.matches(rawPassword, encodedPassword);
    }

    /**
     * 主方法，用于生成编码后的密码
     * 运行此方法可以获取编码后的密码，然后更新数据库
     */
    public static void main(String[] args) {
        String[] passwords = {"123456"};

        System.out.println("=== 密码编码结果 ===");
        for (String password : passwords) {
            String encoded = encode(password);
            System.out.println("原始密码: " + password + " -> 编码后: " + encoded);
        }

        System.out.println("\n=== 验证测试 ===");
        String testPassword = "123456";
        String encodedPassword = encode(testPassword);
        System.out.println("验证结果: " + matches(testPassword, encodedPassword));
    }
}
